﻿using SD.Infrastructure.EntityBase;
using SlamDunk.ValueObjects.Enums;

namespace SlamDunk.MES.Domain.Entities.ConfigurationContext
{
    /// <summary>
    /// 用户相关储存位置
    /// </summary>
    public class UserRelatedStorageLocation : PlainEntity
    {
        #region # 构造器

        #region 00.无参构造器
        /// <summary>
        /// 无参构造器
        /// </summary>
        protected UserRelatedStorageLocation() { }
        #endregion

        #region 01.创建用户相关储存位置构造器
        /// <summary>
        /// 创建用户相关储存位置构造器
        /// </summary>
        /// <param name="storageLocationType">储存位置类型</param>
        /// <param name="storageLocationId">储存位置Id</param>
        /// <param name="storageLocationName">储存位置名称</param>
        /// <param name="isAutoStockIn">是否自动入库</param>
        public UserRelatedStorageLocation(StorageLocationType storageLocationType, string storageLocationId, string storageLocationName, bool isAutoStockIn)
            : this()
        {
            this.StorageLocationType = storageLocationType;
            this.StorageLocationId = storageLocationId;
            this.StorageLocationName = storageLocationName;
            this.IsAutoStockIn = isAutoStockIn;
        }
        #endregion

        #endregion

        #region # 属性

        #region 储存位置类型 —— StorageLocationType StorageLocationType
        /// <summary>
        /// 储存位置类型
        /// </summary>
        public StorageLocationType StorageLocationType { get; private set; }
        #endregion

        #region 储存位置Id —— string StorageLocationId
        /// <summary>
        /// 储存位置Id
        /// </summary>
        public string StorageLocationId { get; private set; }
        #endregion

        #region 储存位置名称 —— string StorageLocationName
        /// <summary>
        /// 储存位置名称
        /// </summary>
        public string StorageLocationName { get; private set; }
        #endregion

        #region 是否自动入库 —— bool IsAutoStockIn
        /// <summary>
        /// 是否自动入库
        /// </summary>
        public bool IsAutoStockIn { get; private set; }
        #endregion

        #region 导航属性 - 用户扩展 —— UserExtension UserExtension
        /// <summary>
        /// 导航属性 - 用户扩展
        /// </summary>
        public virtual UserExtension UserExtension { get; internal set; }
        #endregion

        #endregion
    }
}
